package com.wg.net.annotation;

import com.wg.core.controller.IController;
import com.wg.net.server.http.HttpMethod;

import java.lang.annotation.*;

/**
 * 后台请求映射
 *
 * @author 少爷123
 */
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface HttpRequestMapping {

    /**
     * 映射路径.
     *
     * @return 映射路径
     */
    String value();

    /**
     * 方法
     *
     * @return 返回值
     */
    HttpMethod method() default HttpMethod.ALL;

    /**
     * 控制器类型
     *
     * @return class 默认使用netty线程
     */
    Class<? extends IController> controller() default IController.class;

    /**
     * 允许外网ip访问
     *
     * @return true 允许 false 不允许
     */
    boolean publicIpAccess() default true;

    /**
     * 最大执行时间(毫秒) 大于该时间打印警告日志
     *
     * @return 时间
     */
    int maxExeTimeMs() default 100;
}
